
const express=require('express')
const RouterTodos=require('./todos.router.js')
const app=express()

//配置解析表单请求体 application/json
app.use(express.json())

//配置解析表单请求体 application/x-www-fomr-urlencoded
app.use(express.urlencoded())

/**
 * 中间件的顺序很重要
 * req 请求对象
 * res 响应对象
 * next 下一个中间件
 */
app.use((req,res,next)=>{
    console.log(req.method,req.url,Date.now())
    // 交出执行权，往后继续匹配执行
    next()
})
// 给路由限定访问前缀
app.use('/todos',RouterTodos)

app.use((res,req,nexxt)=>{
    res.status(404).send('404 not found')
})
// 在所有中间件之后挂载错误处理中间件
// 错误处理中间件参数4个，一个都不能少，少一个都不是错误中间件
// 前面任意中间调用next(error)都会被此中间件捕获
app.use((err,req,res,next)=>{
    res.status(500).json({
        error:err.message
    })
})
app.listen(3000,()=>{
    console.log(`server running at http://localhost:3000`)
})